package com.itlong.cloud.enumerate;

import java.util.Objects;

/**
 * <desc>
 *      国际化语言类型枚举。
 * <desc/>
 *
 * @createDate 2017-12-26.
 */
public enum LanguageTypeEnum {

    CHINESE("中文","zh-cn"),
    ENGLISH("英文","en-us"),

    UNKNOW_LANGUAGE("未知语言", "unKnow"),
            ;

    private String description;
    private String language;

    /**
     * <desc>
     *      用户设备权限枚举无参构造函数
     * </desc>
     * @param
     * @return
     * @author  shengen.T
     * @createDate 2017/12/26
     */
    LanguageTypeEnum() {
    }

    /**
     * <desc>
     *      用户设备权限枚举描述与类型构造函数
     * </desc>
     * @param description 描述
     * @param languageType 类型
     * @return
     * @author  shengen.T
     * @createDate 2017/12/26
     */
    LanguageTypeEnum(String description, String languageType) {
        this.description = description;
        this.language = languageType;
    }

    /**
     * <desc>
     *      用户设备权限枚举描述
     * </desc>
     * @param
     * @return String
     * @author shengen.T
     * @createDate 2017/12/26
     */
    public String getDescription() {
        return description;
    }

    /**
     * <desc>
     *      用户设备权限枚举类型
     * </desc>
     * @param
     * @return string
     * @author  shengen.T
     * @createDate 2017/12/26
     */
    public String getLanguage() {
        return language;
    }

    /**
     * <desc>
     *      获取枚举的描述
     * </desc>
     * @param type 枚举类型
     * @return 枚举描述
     * @author  shengen.T
     * @createDate 2017/12/26
     */
    public static String getDescription(Integer type){
        DeviceAuthEnum[] types = DeviceAuthEnum.values();
        for(DeviceAuthEnum limitCategory : types ){
            if(Objects.equals(limitCategory.getType(), type)){
                return limitCategory.getDescription();
            }
        }
        return null;
    }


    /**
     * <desc>
     *      根据语言类型获取语言类型的枚举
     * </desc>
     * @param languageType 枚举类型
     * @return 枚举描述
     * @author shengen.T
     * @createDate 2017/12/26
     */
    public static LanguageTypeEnum getByLanguage(String languageType){
        for (LanguageTypeEnum value : values()) {
            if (value.getLanguage().equals(languageType)) {
                return value;
            }
        }
        return UNKNOW_LANGUAGE;
    }
}
